Education is an area in which various entities, such as courses, tasks, institution, school, department, degree programs and so forth have many relationships between them. Some of these entities are fairly stable over time, while others change fairly often. For example, new courses are added and others removed fairly often, while each course's tasks are changed and updated regularly. However the school or schools for an institution are relatively stable, although its related data (e.g., users) change.
At the same time, educational institutions have a number of needs that are somewhat tailored to their individual circumstances. For example, an elementary school and a university have different needs. Heretofore, there was no efficient way to capture such relationships in a way that is organized, yet at the same time flexible and extensible for the varied circumstances of educational institutions.